In typical current approaches, to display a page with one or more ads, a page is loaded which has JavaScript which calls the ad server(s). FIG. 1 shows a typical prior art approach in which a publisher page includes Javascript™ or other code that dynamically calls out to ad servers from the client at which the publisher page is being rendered. The client system 102 requests a page from publisher web server 104, which obtains content from a content management system 106 to build and serve the requested page. The page includes multiple pieces of JavaScript or other code to call out one or more ad server(s) 108 to obtain ads (or other external content) to be displayed in predetermined locations in the publisher page as rendered at client system 102.
The prior approach can result in less satisfactory user experience, since most pages have numerous ad calls, ads may take a long time to load, add download data costs to mobile users, and slow down the performance of the page, and/or may by interfered with ad blocking or other software. This can decrease the amount of user engagement with a page and the number of pages viewed per user.
The usage of ad blocking tools by users to prevent ads from loading by blocking dynamic JavaScript ad calls is becoming increasingly more common. These ad blockers work by stopping all JavaScript calls to servers that are known to serve ads. This hurts the business of publishers since they cannot monetize that visitor because an ad that does not load means that an ad impression fee cannot be charged to the advertiser.
It would be useful to have a system that reduces the amount of time needed to load ads and prevents an ad-blocker from blocking the ads.